使用PIE engine免费快速下载全球12.5m的DEM影像
下载高程数据,一共就四个个步骤:
1.注册PIE engine
2.加载范围文件;
3.加载高程数据文件;
4.导出DEM文件;
引言
在这之前,我先说明一下,为什么要使用PIE engine来下载DEM数据?我们也可以直接用官网下载DEM数据啊?
12m的DEM下载官网的地址是https://search.asf.alaska.edu/#/,有需要的自取;
但是这种方法并不方便:因为需要筛选使用哪一景影像;下载到本地还需要自己裁剪、镶嵌。
我的原则是能省事就省事,能懒就懒。当朋友问我有没有高分辨率的DEM数据时,我就想到了PIE_Engine,因为GEE也没有12.5m的DEM数据,但是PIE有。所以写了下面简单的代码。
1.注册PIE engine
PIE engine是一个遥感云计算平台,类似与google earth engine。最大的好处是可以直接连接!!数据下载速度比GEE高了几个级别。另外,如果你会GEE,那PIE engine应该也没问题,两者基本上没有语法差别。
使用之前,打开pie engine的网址:
pie engine网址:
https://engine.piesat.cn/
进入编程界面之后,先建一个空白脚本,开始写代码。
2.加载范围文件:
加载矢量范围,一共有三种方法:
直接在pie engine上勾选;
上传自己的矢量;
使用已经存在的矢量数据。
本文使用的是PIE提供的省级矢量数据,使用代码如下,加载了北京市的矢量地图:
//加载roi文件
var roi = pie.FeatureCollection("NGCC/CHINA_CITY_BOUNDARY")
.filter(pie.Filter.eq("name", "北京市"))
.first()
.geometry();
3.加载高程数据文件:
首先在资源目录搜索DEM,会自动跳出12m与30m的全球DEM。我们先看一看需要下载的ALOS DEM的介绍:
复制引用的代码,并且做一个筛选,将DEM加载到地图中:
//加载高程数据.ALOS_DEM_12
var roi_DEM = pie.ImageCollection('DEM/ALOS_DEM_12')
.filterBounds(roi)
.filterDate("2011-1-01", "2011-12-31")
.first()
.select(["elevation"])
.clip(roi) ;
筛选过程中,有四点需要说明:时间范围选2011年;需要选择高程数据的波段elevation;筛选即裁剪,节约后续操作;如果一景影像不能覆盖研究区,应考虑mosaic镶嵌,再进行裁剪。
4.导出DEM文件:
筛选成功后,进行一个DEM的显示,看看效果。然后导出DEM。需要注意,scale设置为12,而非12.5。因为DEM数据是int16的数据,这其中分辨率是12m,而非12.5m。
//显示
Map.centerObject(roi, 6);
Map.addLayer(roi, {color: 'FF0000', fillColor: '00000000', width: 1}, "roi")
Map.addLayer(roi_DEM)
//导出DEM
Export.image({
image:roi_DEM,
description: "dem_to_download",
assetId: "dem_to_download",
region:roi,
scale: 12
});
点击运行代码之后,按如图进行DEM数据的下载:
数据下载完毕后,将DEM数据加载到arcgis中,看看效果:
结语:
使用GEE、pie_engine下载高程数据很方便,比起本地操作,遥感云平台可以选择多分辨率、预处理好的影像。
分享一下我的PIE engine的链接,有需要的自提:
https://engine.piesat.cn/engine-share/shareCode.html?id=aec383cd00c64ae1a93d3df66df4ac35
VX:kitmyfaceplease2;欢迎关注公众号:锐多宝的地理空间;